Computer Science: Polynomial Time Reducibility